package com.railway.field.dao;

import com.railway.field.entity.Staff;
import com.railway.field.entity.Value;

import java.util.List;
import java.util.Map;

public interface StaffDao {
    //增加人员信息(Map)
    int InsertStaff_Map(Map map);

    //增加人员信息(Staff)
    int InsertStaff_Staff(Staff staff);

    //删除员工信息
    int DeleteStaff(Map map);

    //修改员工信息
    int UpdateStaff(Map map);

    //修改App登录密码
    int UpdateStaffPassword(Map map);

    //修改员工在职/离职状态
    int UpdateStaffState(Map map);

    //修改员工培训状态
    int UpdateStaffTrain(Map map);

    //修改员工剩余积分(购买商品后扣除积分)
    int UpdateStaffEnd_integral(Map map);

    //修改员工历史积分
    int UpdateStaffHistory_integral(Map map);

    //修改员工剩余积分(上传隐患增加积分)
    int UpdateStaffEnd_integralJ(Map map);

    //修改个人资料_app
    int UpdateStaffApp(Map map);

    //分页模糊查询员工信息
    List<Staff> FindStaff(Map map);

    //统计总数
    long Total(Map map);

    //根据手机号查询员工信息
    Staff FindStaffByStaffPhone(Map map);

    //根据身份证号查询员工信息
    Staff FindStaffByStaffCard(Map map);

    //根据id查询员工信息
    Staff FindStaffByStaffId(Map map);

    //根据staff_id查询员工信息
    Staff FindStaffByStaffIdAll(Map map);

    //统计总数
    int CountAll(Map map);

    //上传员工二维码
    int InsertStaffCode(Map map);

    //人员趋势分析
    List<Value> StaffQs(Map map);

    //根据姓名查询人员信息
    Staff FindStaffByStaffName(Map map);




    //统计图数据
    //根据工种分组查询
    List<Staff> CountByWorktype(Map map);

    //根据分包单位分组查询
    List<Staff> CountBySub(Map map);

    //根据人员类型分组查询
    List<Staff> CountByType(Map map);

    //根据地区分组查询
    List<Staff> CountByStaffProvince(Map map);

    //根据民族分组查询
    List<Staff> CountByStaffNation(Map map);

    //根据性别分组查询
    List<Staff> CountByStaffSex(Map map);

    //统计总劳务人员数
    List<Staff> CountByTypeLW(Map map);

    //统计总管理人员数
    List<Staff> CountByTypeGL(Map map);

    //按照年龄端分组查询
    List<Staff> CountByStaffAge(Map map);

}
